The Internet is arguably one of the most important inventions of the past 100 years. It enables a user of a computer system to identify and communicate with millions of other users of computer systems located around the world. Computers that use the Internet each have their own Internet Protocol Address (an “IP Address”). These unique IP Addresses are a series of numbers—for example, 65.207.2.2—and enable users on one computer to request data from another computer. One common application of IP addresses is for requesting a webpage from a web server associated with the IP address.
IP Addresses, however, can be cumbersome for people to remember. Thus, an essential part of the Internet became the Domain Name System (“DNS”). Its primary purpose is to translate user-friendly domain names to the Internet Protocol (“IP”) addresses used by devices connected to the Internet. This system enables a user to enter a word-based website address (known as a “Domain Name”)—such as verisign.com—and access the computer whose IP Address is associated with it. Ultimately, however, a user does not access a website using a domain name alone because the user's web browser will translate the domain name into an IP Address. Thus, in the end, the IP Address is the only identifier that enables users to access websites. Servers called Authoritative Name Servers (“name servers”) form a major part of the DNS infrastructure that allows users to ask for the IP Address via a domain name. The Name Servers will receive a user request containing a domain name, determine the IP Address that corresponds to the domain name, and send the IP Address back to the user. The user can then access the website using the IP Address. A Service Provider sometimes will operate multiple Name Servers in order to deliver IP Addresses to requesting users more quickly.
The approach of the prior art in contacting an authoritative name server is to contact the next-most-responsive authoritative name server. Many times, this next-most-responsive authoritative name server will be operated by the same service provider. Thus, for example, if one service provider provides 90% of all name servers, and all of that service provider's name servers are unreachable, then a high percentage of a user's attempts to resolve a domain name will fail. This can waste significant time because such a method will wait for multiple requests to fail before moving onto another server.
Thus, a problem can arise when a Name Server is slow, unresponsive, inaccessible, or is otherwise unusable because users will not be able to learn the IP Address of a website they wish to access. If their preferred name server is not responsive, the user will have to rely upon another name server for that information. Furthermore, if a Service Provider runs multiple name servers and the Service Provider itself is experiencing a network outage, then a user sending requests to other name servers operated by that Service Provider will similarly fail and further delay a user's attempt to resolve a domain name to an IP Address.
Accordingly, a need exists for an improved method of choosing a Name Server, leading to a more efficient and reliable Domain Name System.